package com.icez.bottom_navigation

import android.content.Context
import android.view.LayoutInflater
import android.view.View
import androidx.databinding.ViewDataBinding

/**
 * 底部菜单适配器
 * @sample
 * @author Icez
 */
abstract class BottomNavigationAdapter<T:ViewDataBinding> {
    // 上下文
    var mContext: Context ?= null

    /**
     * 获取item控件
     *
     * @param mLayoutInflater LayoutInflater类
     * @param mPosition 索引
     * @return
     */
    abstract fun getItemView(position:Int): Int

    /**
     * 获取item的数量
     *
     * @return
     */
    abstract fun getSize():Int

    /**
     * 设置默认选择的索引
     *
     * @return
     */
    abstract fun setDefaultSelectPosition():Int

    /**
     * 初始化控件的值
     *
     */
    abstract fun initViewValue(binding:T,position:Int)

    /**
     * 选中的时候状态
     *
     * @param binding Binding
     * @param selectPosition 选中的索引
     */
    abstract fun selectedStatus(binding:T,selectPosition:Int)

    /**
     * 未选中的状态
     *
     * @param binding Binding
     * @param position 没有选中的索引
     * @param selectPosition 选中的索引
     */
    abstract fun normalStatus(binding:T,position:Int,selectPosition:Int)
}